package kr.hkit.powerjava.chther26;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.InvalidPropertiesFormatException;
import java.util.Map.Entry;
import java.util.Properties;
import java.util.Set;

public class Dbproperties {
	public static Properties loadPropertis(String propertiesFile){
		BufferedInputStream bis = null;
		Properties prop =null;
		
		try {
			bis = new BufferedInputStream(new FileInputStream(propertiesFile));
			prop = new Properties();
			prop.loadFromXML(bis);
		} catch (FileNotFoundException e) {
			System.err.println("파일이존재하지않음");
		} catch (InvalidPropertiesFormatException e) {
			System.err.println("유효하지 않은 파일");
		} catch (IOException e) {
			e.printStackTrace();
		}finally{
			if(bis != null)try{bis.close();bis=null;}catch(Exception e){}
		}

		return prop;
	}
	//savePropertis("test.prof","user","pass","db");
	public static void savePropertis(String propertiesFile,String...value){
		BufferedOutputStream bos = null;
		Properties prop = null;
		
		try {
			bos = new BufferedOutputStream(new FileOutputStream(propertiesFile));
			prop = new Properties();
			prop.setProperty("DRIVER", value[0]);
			prop.setProperty("URL", value[1]);
			prop.setProperty("USER", value[2]);
			prop.setProperty("PASSWORD", value[3]);
			
			prop.storeToXML(bos, "Database connection XML Property File");
			
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			if(bos != null)try{bos.close();bos=null;}catch(Exception e){}
		}
		
		
	}
	public static void prnProperties(Properties prop){
		Set<Entry<Object,Object>> setmap= prop.entrySet();
		for(Entry<Object,Object>propty:setmap){
			System.out.printf("%s:%s\n",propty.getKey(),propty.getValue());
		}
	}
}
